<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 计数排序  利用数组下标天然有序的原理， 创建一个length为max+1的新数组，便利原数组，数组项
        // 每出现一次 就将新数组的第（数组值项） + 1； 最后便利新数组，将不为零的数组下标一次push到新数组即可
        function countSort(arr) {
            let max = 0;
            for(let i = 0; i < arr.length; i++) {
                max = Math.max(max, arr[i]);
            }
            // console.log(max);
            let newArr = new Array(max+1).fill(0);
            // console.log(newArr);
            for(let i = 0; i < arr.length; i++) {
                let k = arr[i]; // k 为当前数组值
                // console.log(k);
                // console.log(newArr[k])
                newArr[k] = newArr[k] + 1;
            }
            // console.log(newArr);
            var arr = [];
            for(let i = 0; i < newArr.length; i++) {
                if(newArr[i] > 0) {
                    for(let j = 0; j < newArr[i]; j++) {
                        arr.push(i);
                    }
                }
            }
            return arr;
        }
        const arr =[3,4,6,7,8,9,10,5,6];
        console.log(arr); 
        console.log(countSort(arr));
    </script>
</body>
</html>